# 1.先自定义一个 元类
class Human(type): # 继承 元类 type类
    @staticmethod
    def __new__(cls, *args, **kwargs): # 创建实例类时 自定义要做的事情
        print('args=',args)
        print('kwargs=', kwargs)
        class_ = super().__new__(cls,*args) # 先使用 type的初始化方法 将类实例创建起来
        # 自定义类的属性
        class_.freedom = True
        # 根据传入的参数 设置类实例的属性
        if kwargs:
            for key,val in kwargs.items():
                setattr(class_,key,val)
        return class_

# 2.使用刚刚创建的元类 创建一个类
class Student(object,metaclass=Human,country='china',sex='boy'): # 创建类的时候进行传参指定 该类的父类和元类
    pass

# 3.输出 student类上的属性
print(Student.freedom)
print(Student.country)
print(Student.sex)



